Verification-based software-fault detection

نویسنده

  • Christoph Gladisch
چکیده

Software is used in many safetyand security-critical systems. Software development is, however, an error-prone task where a software developer tries to precisely formalize in a programming language their imprecise ideas about a program. Formal methods help to reduce this problem. These methods add another layer to the software development allowing to formalize and to check desired properties of a program. Deductive software verification is a formal method for proving the correctness of a program with respect to a requirement specification. However, since programs often have faults, i.e., they do not satisfy the required program properties, program correctness proofs often do not succeed. The ability to detect software faults is therefore important to increase the efficiency of software verification. Another deficiency of software verification is that it is often not practical to apply software verification rigorously to a program and all other components that are critical for the the correct behavior of the program. The combination of software verification with software testing is therefore important even if a correctness proof for a program (subset) has been established. In this dissertation new techniques for the detection of software faults (or software “bugs”) are developed which are based on a formal deductive verification technology. The general approach is to start with a verification attempt in order to gain information about the respective program and then to use this information for software fault detection. The techniques are divided into two categories. The first category consists of purely deductive techniques that solve specific problems for detecting software faults if a verification attempt is not successful. The most significant contributions are (a) a technique for counterexample generation from first-order logic formulas with quantifiers, and (b) a technique for deducing the existence of software faults from a failed verification attempt when loop invariants and method contracts are used. The second category consists of test case generation techniques that are based on the techniques from the first category. We extend existing work for the generation of test cases from proof structures and describe tool-chains that combine verification-based test generation with more traditional test generation approaches. The described approaches take advantage of information obtained during verification and in this way combine verification technology with deductive fault detection and test generation in a very unified way.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Formally expressing the semantics of observer-based fault detection software

The aim is to create reliable and verifiable fault detection software to detect abrupt changes in safety-critical dynamic systems. Fault detection methods are implemented as software on digital computers that monitor and control the system. We implement three observer-based fault detection methods on a 3 degrees of freedom (3DOF) laboratory helicopter, in the form of software. We examine the pe...

متن کامل

Towards a Theory for Integration of Mathematical Verification and Empirical Testing

From the viewpoint of a project manager responsible for the V&V of a software system, mathematical verijcation techniques provide a potentially valuable addition to otherwise standard empirical testing. However, the value they add, both in terms of coverage and in fault detection, has been difficult to quantify. Potential cost savings from replacing testing with mathematical techniques cannot b...

متن کامل

Evaluation of an Expert System for Fault Detection , Isolation , and Recovery in the Manned Maneuvering Unit

We explore issues in the specification, verification, and validation of AIbased software using a prototype Fault Detection, Isolation, and Recovery (FDII_) system for the Manned-Maneuvering Unit (MMU). We use the MMU FDIR system, which is implemented in CLIPS, as a vehicle for exploring issues in the semantics of CLIPS-style, rule-based languages, the verification of properties relating to safe...

متن کامل

Verification and Validation of Object Oriented Software Design Guidelines on how to Choose the Best Method

[The earlier in the development process a fault is found, the cheaper it is to correct the fault. Therefore are verification and validation methods important tools. The problem with this is that there are many methods to choose between. This thesis sheds light on how to choose between four common verification and validation methods. The verification and validation methods presented in this thes...

متن کامل

Path Conditions Help to Locate and Localize Faults from Programs

Precisely and automatically detection of faults in programs, is a software engineering dream. Every effort in this regard takes us one step closer to realizing it. Many efforts have been taken from the people of these areas on testing, verification and debugging. We are proposing such effort for the research community of this domain is using path conditions to generate a minimal set of PLOFC (p...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011